import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue' // 引入 Vue 插件
import path from 'path' // 引入 path 模块用于路径解析

export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd())
  const { VITE_APP_ENV } = env // 开发环境
  const { VITE_SYSTEM_BASE_URL } = env // 后端接口通过.env.[环境] 配置中取

  return {
    base: VITE_APP_ENV === 'production' ? '/' : '/',
    plugins: [vue()], // 使用 Vue 插件

    // 添加路径别名配置
    resolve: {
      alias: {
        '@': path.resolve(__dirname, 'src'), // 将 @ 别名指向项目根目录下的 src 文件夹
      },
    },

    build: {
      outDir: 'dist', // 输出目录
      assetsDir: 'assets', // 静态资源目录
      sourcemap: false, // 不生成 source map
    },

    server: {
      port: 8000, // 开发服务器端口
      host: true, // 允许外部访问
      open: true, // 自动打开浏览器
      proxy: {
        '/api': {
          target: VITE_SYSTEM_BASE_URL,
          changeOrigin: true,
          rewrite: (p) => p.replace(/^\/api/, ''),
        },
        '^/v3/api-docs/(.*)': {
          target: VITE_SYSTEM_BASE_URL,
          changeOrigin: true,
        },
      },
    },
  }
})